package com.dkd.day20250718;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main25 {
    public static void main(String[] args) {
        //题目描述
        //开头和结尾都是元音字母（aeiouAEIOU）的字符串为元音字符串，其中混杂的非元音字母数量为其瑕疵度。比如:
        //
        //“a” 、 “aa”是元音字符串，其瑕疵度都为0
        //“aiur”不是元音字符串（结尾不是元音字符）
        // “abira”是元音字符串，其瑕疵度为2
        //给定一个字符串，请找出指定瑕疵度的最长元音字符子串，并输出其长度，如果找不到满足条件的元音字符子串，输出0。
        //
        //子串：字符串中任意个连续的字符组成的子序列称为该字符串的子串。
        //
        //输入描述
        //首行输入是一个整数，表示预期的瑕疵度flaw，取值范围[0, 65535]。
        //
        //接下来一行是一个仅由字符a-z和A-Z组成的字符串，字符串长度(0, 65535]。
        //
        //输出描述
        //输出为一个整数，代表满足条件的元音字符子串的长度。
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String  arr = sc.next();
        solve(n, arr);
    }

    public static void solve(int n , String  arr) {
        char [] yuan ={'A','E','I','O','U','a','e','i','o','u'};
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < arr.length(); i++) {
            char ch = arr.charAt(i);
            for (int j = 0; j < yuan.length; j++) {
                if (ch == yuan[j]) {
                    list.add(i);
                }
            }
        }


        int left = 0;
        int right = 0;
        int max = 0;
        while (right < list.size()) {
            //计算瑕疵度
            int number = list.get(right)-list.get(left)-right+left;
            if (number < n) {
                right++;
            }else if (number > n) {
                left++;
            }else{
                max = Math.max(max, list.get(right)-list.get(left)+1);
                right++;
            }
        }

        System.out.println(max);

    }
}
